// vue.config.js
const path = require('path')
const defaultSettings = require('./setting')
const CompressionPlugin = require('compression-webpack-plugin')
function resolve (dir) {
  return path.join(__dirname, dir)
}
const name = defaultSettings.title // 网站标题
const port = 8848 // 端口配置

module.exports = {
  // 部署环境目录
  publicPath: '/',
  // 生产环境构建文件的目录
  outputDir: 'dist',
  // 放置生成的静态资源
  assetsDir: 'static',
  // eslint只在开发环境下有效果
  lintOnSave: process.env.NODE_ENV === 'development',
  // 不需要生产环境的 source map
  productionSourceMap: false,
  devServer: {
    port
  },
  configureWebpack: {
    name,
    resolve: {
      alias: {
        '@': resolve('src')
      }
    },
    plugins: [
      // new BundleAnalyzerPlugin({ analyzerPort: 8920 }),
      new CompressionPlugin({
        filename: '[path][base].gz',
        algorithm: 'gzip',
        test: /\.(js|css)(\?.*)?$/i,
        threshold: 1024,
        minRatio: 0.8,
        deleteOriginalAssets: false
      })
    ],
    devtool: process.env.NODE_ENV !== 'development' ? '#cheap-module-source-map' : '#eval-source-map'
  },
  css: {
    loaderOptions: {
      // 给 sass-loader 传递选项
      scss: {
        // @/ 是 src/ 的别名
        // 所以这里假设你有 `src/variables.sass` 这个文件
        // 注意：在 sass-loader v8 中，这个选项名是 "prependData"
        prependData: '@import "~@/styles/variables.scss";'
      }
    }
  }
}
